from django import template
register = template.Library()

from django.utils.html import format_html

# 自定义过滤器
@register.filter
def py11_upper(val):
    # print ('val from template:',val)
    return val.upper()


# 自定义乘法运算标签
@register.simple_tag
def cheng(var1,var2):
    res = float(var1) * float(var2)

    return '%.2f'%res


# 自定义分页标签
@register.simple_tag
def showpage(count,request):
    
    # 获取当前页
    p = int(request.GET.get('p',1))

    # 获取当前页面中的请求参数 get
    args = request.GET.dict()
    u = ''
    for k,v in args.items():
        if k != 'p':
            u += '&'+k+'='+v


    # 开始页
    begin = p-4
    # 结束页
    end = p+5
    # 判断如果当前页 小于5
    if p < 5:
        # 则开始页为1
        begin = 1
        # 结束页为10
        end = 10
    # 判断如果当前页 大于 总页数-5
    if count<10:
        begin=1
        end = count
    # 当前页如果大于总页数-5
    if p > count-5:
        # 则开始页为总页数-9
        begin = count - 9
        # 结束页为总页数
        end = count

    # 判断如果开始页 小于等于 0,则开始页为1
    if begin <= 0:
        begin = 1

    s = '<li>总页数:'+str(count)+'</li>'
    s+= '<li><a href="?p=1'+u+'">首页</a></li>'
    for x in range(begin,end+1):
        if p == x:
            s+= '<li class="am-active"><a href="?p='+str(x)+u+'">'+str(x)+'</a></li>'
        else:
            s+= '<li><a href="?p='+str(x)+u+'">'+str(x)+'</a></li>'

    s+= '<li><a href="?p='+str(count)+u+'">尾页</a></li>'

    return format_html(s)